<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Transition Structure Reference</title>
    <link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="../css/highlight.css" />
    <meta charset="utf-8">
    <script src="../js/jquery.min.js" defer></script>
    <script src="../js/jazzy.js" defer></script>
    
    <script src="../js/lunr.min.js" defer></script>
    <script src="../js/typeahead.jquery.js" defer></script>
    <script src="../js/jazzy.search.js" defer></script>
  </head>
  <body>

    <a name="//apple_ref/swift/Struct/Transition" class="dashAnchor"></a>

    <a title="Transition Structure Reference"></a>

    <header class="header">
      <p class="header-col header-col--primary">
        <a class="header-link" href="../index.html">
          XCoordinator Docs
        </a>
        
      </p>
    
      <p class="header-col--secondary">
        <form role="search" action="../search.json">
          <input type="text" placeholder="Search documentation" data-typeahead>
        </form>
      </p>
    
        <p class="header-col header-col--secondary">
          <a class="header-link" href="https://github.com/quickbirdstudios/XCoordinator">
            <img class="header-icon" src="../img/gh.png"/>
            View on GitHub
          </a>
        </p>
    
    </header>

    <p class="breadcrumbs">
      <a class="breadcrumb" href="../index.html">XCoordinator Reference</a>
      <img class="carat" src="../img/carat.png" />
      Transition Structure Reference
    </p>

    <div class="content-wrapper">
      <nav class="navigation">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="../Classes.html">Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/Animation.html">Animation</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/AnyCoordinator.html">AnyCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/AnyTransitionPerformer.html">AnyTransitionPerformer</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/BaseCoordinator.html">BaseCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/BasicCoordinator.html">BasicCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/BasicCoordinator/InitialLoadingType.html">– InitialLoadingType</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/InteractiveTransitionAnimation.html">InteractiveTransitionAnimation</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/InterruptibleTransitionAnimation.html">InterruptibleTransitionAnimation</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/NavigationAnimationDelegate.html">NavigationAnimationDelegate</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/NavigationCoordinator.html">NavigationCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/PageCoordinator.html">PageCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/PageCoordinatorDataSource.html">PageCoordinatorDataSource</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/RedirectionRouter.html">RedirectionRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/SplitCoordinator.html">SplitCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/StaticTransitionAnimation.html">StaticTransitionAnimation</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/StrongRouter.html">StrongRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/TabBarAnimationDelegate.html">TabBarAnimationDelegate</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/TabBarCoordinator.html">TabBarCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Classes/ViewCoordinator.html">ViewCoordinator</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="../Extensions.html">Extensions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Extensions/UIView.html">UIView</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Extensions/UIViewController.html">UIViewController</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/Container.html">Container</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/Coordinator.html">Coordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/PercentDrivenInteractionController.html">PercentDrivenInteractionController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/Presentable.html">Presentable</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols.html#/s:12XCoordinator5RouteP">Route</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/Router.html">Router</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/TransitionAnimation.html">TransitionAnimation</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/TransitionContext.html">TransitionContext</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/TransitionPerformer.html">TransitionPerformer</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Protocols/TransitionProtocol.html">TransitionProtocol</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="../Structs.html">Structures</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Structs/Transition.html">Transition</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Structs/TransitionOptions.html">TransitionOptions</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Structs/UnownedErased.html">UnownedErased</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Structs/UnownedErased.html">UnownedErased</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Structs/WeakErased.html">WeakErased</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Structs/WeakErased.html">WeakErased</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="../Typealiases.html">Type Aliases</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator24AnyNavigationCoordinatora">AnyNavigationCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator9AnyRoutera">AnyRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator20AnyTabBarCoordinatora">AnyTabBarCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator18AnyViewCoordinatora">AnyViewCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator26BasicNavigationCoordinatora">BasicNavigationCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator22BasicTabBarCoordinatora">BasicTabBarCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator20BasicViewCoordinatora">BasicViewCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator26ContextPresentationHandlera">ContextPresentationHandler</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator20NavigationTransitiona">NavigationTransition</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator14PageTransitiona">PageTransition</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator19PresentationHandlera">PresentationHandler</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator15SplitTransitiona">SplitTransition</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator16TabBarTransitiona">TabBarTransition</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator13UnownedRoutera">UnownedRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator14ViewTransitiona">ViewTransition</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="../Typealiases.html#/s:12XCoordinator10WeakRoutera">WeakRouter</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">

        <section class="section">
          <div class="section-content">
            <h1>Transition</h1>
              <div class="declaration">
                <div class="language">
                  <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Transition</span><span class="o">&lt;</span><span class="kt">RootViewController</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="../Protocols/TransitionProtocol.html">TransitionProtocol</a></span> <span class="k">where</span> <span class="kt">RootViewController</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                </div>
              </div>
            <p>This struct represents the common implementation of the <code><a href="../Protocols/TransitionProtocol.html">TransitionProtocol</a></code>.
It is used in every of the provided <code><a href="../Classes/BaseCoordinator.html">BaseCoordinator</a></code> subclasses and provides all transitions implemented in XCoordinator.</p>

<p><code>Transitions</code> are defined by a <code>Transition.Perform</code> closure.
It further provides different context information such as <code>Transition.presentable</code> and <code><a href="../Structs/Transition.html#/s:12XCoordinator10TransitionV9animationAA0B9Animation_pSgvp">Transition.animation</a></code>.
You can create your own custom transitions using <code>Transition.init(presentable:animation:perform:)</code> or
use one of the many provided static functions to create the most common transitions.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    Transitions have a generic constraint to the rootViewController in use.
Therefore, not all transitions are available in every coordinator.
Make sure to specify the <code>RootViewController</code> type of the <code>TransitionType</code> of your coordinator as precise as possible
to get all already available transitions.

</div>

          </div>
        </section>

        <section class="section">
          <div class="section-content">
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Typealias"></a>
                <a name="//apple_ref/swift/Section/Typealias" class="dashAnchor"></a>
                <a href="#/Typealias">
                  <h3 class="section-name">Typealias</h3>
                </a>
              </div>
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV14PerformClosurea"></a>
                    <a name="//apple_ref/swift/Alias/PerformClosure" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV14PerformClosurea">PerformClosure</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Perform is the type of closure used to perform the transition.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">PerformClosure</span> <span class="o">=</span> <span class="p">(</span><span class="n">_</span> <span class="nv">rootViewController</span><span class="p">:</span> <span class="kt">RootViewController</span><span class="p">,</span> <span class="n">_</span> <span class="nv">options</span><span class="p">:</span> <span class="kt"><a href="../Structs/TransitionOptions.html">TransitionOptions</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:12XCoordinator19PresentationHandlera">PresentationHandler</a></span><span class="p">?)</span> <span class="o">-&gt;</span> <span class="kt">Void</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>rootViewController</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The rootViewController to perform the transition on.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>options</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The options on how to perform the transition, e.g. whether it should be animated or not.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>completion</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The completion handler of the transition.
It is called when the transition (including all animations) is completed.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Computed%20properties"></a>
                <a name="//apple_ref/swift/Section/Computed properties" class="dashAnchor"></a>
                <a href="#/Computed%20properties">
                  <h3 class="section-name">Computed properties</h3>
                </a>
              </div>
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV12presentablesSayAA11Presentable_pGvp"></a>
                    <a name="//apple_ref/swift/Property/presentables" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV12presentablesSayAA11Presentable_pGvp">presentables</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The presentables this transition is putting into the view hierarchy. This is especially useful for
deep-linking.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">presentables</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">]</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV9animationAA0B9Animation_pSgvp"></a>
                    <a name="//apple_ref/swift/Property/animation" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV9animationAA0B9Animation_pSgvp">animation</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The transition animation this transition is using, i.e. the presentation or dismissal animation
of the specified <code><a href="../Classes/Animation.html">Animation</a></code> object. If the transition does not use any transition animations, <code>nil</code>
is returned.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="k">var</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Protocols/TransitionAnimation.html">TransitionAnimation</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Initialization"></a>
                <a name="//apple_ref/swift/Section/Initialization" class="dashAnchor"></a>
                <a href="#/Initialization">
                  <h3 class="section-name">Initialization</h3>
                </a>
              </div>
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV12presentables14animationInUse7performACyxGSayAA11Presentable_pG_AA0B9Animation_pSgyx_AA0B7OptionsVyycSgtctcfc"></a>
                    <a name="//apple_ref/swift/Method/init(presentables:animationInUse:perform:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV12presentables14animationInUse7performACyxGSayAA11Presentable_pG_AA0B9Animation_pSgyx_AA0B7OptionsVyycSgtctcfc">init(presentables:animationInUse:perform:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Create your custom transitions with this initializer.</p>

<p>Extending Transition with static functions to create transitions with this initializer
(instead of calling this initializer in your <code>prepareTransition(for:)</code> method) is advised
as it makes reuse easier.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="nf">init</span><span class="p">(</span><span class="nv">presentables</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">],</span> <span class="nv">animationInUse</span><span class="p">:</span> <span class="kt"><a href="../Protocols/TransitionAnimation.html">TransitionAnimation</a></span><span class="p">?,</span> <span class="nv">perform</span><span class="p">:</span> <span class="kd">@escaping</span> <span class="kt"><a href="../Structs/Transition.html#/s:12XCoordinator10TransitionV14PerformClosurea">PerformClosure</a></span><span class="p">)</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentables</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentables this transition is putting into the view hierarchy, if specifiable.
These presentables are used in the deep-linking feature.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animationInUse</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The transition animation this transition is using during the transition, i.e. the present animation
of a presenting transition or the dismissal animation of a dismissing transition.
Make sure to specify an animation here to use your transition with the
<code>registerInteractiveTransition</code> method in your coordinator.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>perform</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The perform closure executes the transition.
To create custom transitions, make sure to call the completion handler after all animations are done.
If applicable, make sure to use the TransitionOptions to, e.g., decide whether a transition should be animated or not.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Methods"></a>
                <a name="//apple_ref/swift/Section/Methods" class="dashAnchor"></a>
                <a href="#/Methods">
                  <h3 class="section-name">Methods</h3>
                </a>
              </div>
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV7perform2on4with10completionyx_AA0B7OptionsVyycSgtF"></a>
                    <a name="//apple_ref/swift/Method/perform(on:with:completion:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV7perform2on4with10completionyx_AA0B7OptionsVyycSgtF">perform(on:with:completion:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Performs a transition on the given viewController.</p>
<div class="aside aside-warning">
    <p class="aside-title">Warning</p>
    Do not call this method directly. Instead use your coordinator&rsquo;s <code>performTransition</code> method or trigger
a specified route (latter option is encouraged).

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">func</span> <span class="nf">perform</span><span class="p">(</span><span class="n">on</span> <span class="nv">rootViewController</span><span class="p">:</span> <span class="kt">RootViewController</span><span class="p">,</span> <span class="n">with</span> <span class="nv">options</span><span class="p">:</span> <span class="kt"><a href="../Structs/TransitionOptions.html">TransitionOptions</a></span><span class="p">,</span> <span class="nv">completion</span><span class="p">:</span> <span class="kt"><a href="../Typealiases.html#/s:12XCoordinator19PresentationHandlera">PresentationHandler</a></span><span class="p">?)</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE4push_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/push(_:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE4push_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ">push(_:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Pushes a presentable on the rootViewController&rsquo;s navigation stack.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">push</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to be pushed onto the navigation stack.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to set for the presentable. Its presentationAnimation will be used for the
immediate push-transition, its dismissalAnimation is used for the pop-transition,
if not otherwise specified. Specify <code>nil</code> here to leave animations as they were set for the
presentable before. You can use <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the previously set animations
on this presentable.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop9animationACyxGAA9AnimationCSg_tFZ"></a>
                    <a name="//apple_ref/swift/Method/pop(animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop9animationACyxGAA9AnimationCSg_tFZ">pop(animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Pops the topViewController from the rootViewController&rsquo;s navigation stack.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">pop</span><span class="p">(</span><span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to set for the presentable. Only its dismissalAnimation is used for the
pop-transition. Specify <code>nil</code> here to leave animations as they were set for the
presentable before. You can use <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the previously set animations
on this presentable.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop2to9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/pop(to:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3pop2to9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ">pop(to:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Pops viewControllers from the rootViewController&rsquo;s navigation stack until the specified
presentable is reached.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">pop</span><span class="p">(</span><span class="n">to</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to pop to. Make sure this presentable is in the rootViewController&rsquo;s
navigation stack before performing such a transition.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to set for the presentable. Only its dismissalAnimation is used for the
pop-transition. Specify <code>nil</code> here to leave animations as they were set for the
presentable before. You can use <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the previously set animations
on this presentable.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE9popToRoot9animationACyxGAA9AnimationCSg_tFZ"></a>
                    <a name="//apple_ref/swift/Method/popToRoot(animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE9popToRoot9animationACyxGAA9AnimationCSg_tFZ">popToRoot(animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Pops viewControllers from the rootViewController&rsquo;s navigation stack until only one viewController
is left.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">popToRoot</span><span class="p">(</span><span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to set for the presentable. Only its dismissalAnimation is used for the
pop-transition. Specify <code>nil</code> here to leave animations as they were set for the
presentable before. You can use <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the previously set animations
on this presentable.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/set(_:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo22UINavigationControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ">set(_:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Replaces the navigation stack of the rootViewController with the specified presentables.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">set</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentables</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">],</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentables</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentables to make up the navigation stack after the transition is done.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to set for the presentable. Its presentationAnimation will be used for the
transition animation of the top-most viewController, its dismissalAnimation is used for
any pop-transition of the whole navigation stack, if not otherwise specified. Specify <code>nil</code>
here to leave animations as they were set for the presentables before. You can use
<code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the previously set animations on all presentables.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo20UIPageViewControllerCRbzrlE3set__9directionACyxGAA11Presentable_p_AaI_pSgSo0cdE19NavigationDirectionVtFZ"></a>
                    <a name="//apple_ref/swift/Method/set(_:_:direction:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo20UIPageViewControllerCRbzrlE3set__9directionACyxGAA11Presentable_p_AaI_pSgSo0cdE19NavigationDirectionVtFZ">set(_:_:direction:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Sets the current page(s) of the rootViewController. Make sure to set
<code>UIPageViewController.isDoubleSided</code> to the appropriate setting before executing this transition.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">set</span><span class="p">(</span><span class="n">_</span> <span class="nv">first</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="n">_</span> <span class="nv">second</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">,</span>
                       <span class="nv">direction</span><span class="p">:</span> <span class="kt">UIPageViewController</span><span class="o">.</span><span class="kt">NavigationDirection</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>first</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The first page being shown. If second is specified as <code>nil</code>, this reflects a single page
being shown.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>second</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The second page being shown. This page is optional, as your rootViewController can be used
with <code>isDoubleSided</code> enabled or not.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>direction</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The direction in which the transition should be animated.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/set(_:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE3set_9animationACyxGSayAA11Presentable_pG_AA9AnimationCSgtFZ">set(_:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to set the tabs of the rootViewController with an optional custom animation.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>Only the presentation animation of the Animation object is used.</p>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">set</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentables</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">],</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentables</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The tabs to be set are defined by the presentables&rsquo; viewControllers.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be used. If you specify <code>nil</code> here, the default animation by UIKit is used.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/select(_:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ">select(_:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to select a tab with an optional custom animation.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>Only the presentation animation of the Animation object is used.</p>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">select</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The tab to be selected is the presentable&rsquo;s viewController. Make sure that this is one of the
previously specified tabs of the rootViewController.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be used. If you specify <code>nil</code> here, the default animation by UIKit is used.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select5index9animationACyxGSi_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/select(index:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionVAASo18UITabBarControllerCRbzrlE6select5index9animationACyxGSi_AA9AnimationCSgtFZ">select(index:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to select a tab with an optional custom animation.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>Only the presentation animation of the Animation object is used.</p>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">select</span><span class="p">(</span><span class="nv">index</span><span class="p">:</span> <span class="kt">Int</span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>index</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The index of the tab to be selected. Make sure that there is a tab at the specified index.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be used. If you specify <code>nil</code> here, the default animation by UIKit is used.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV4showyACyxGAA11Presentable_pFZ"></a>
                    <a name="//apple_ref/swift/Method/show(_:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV4showyACyxGAA11Presentable_pFZ">show(_:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Shows a viewController by calling <code>show</code> on the rootViewController.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>Prefer <code>Transition.push</code> when using transitions on a <code>UINavigationController</code> rootViewController.
In contrast to this transition, you can specify an animation.</p>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">show</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to be shown as a primary view controller.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV10showDetailyACyxGAA11Presentable_pFZ"></a>
                    <a name="//apple_ref/swift/Method/showDetail(_:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV10showDetailyACyxGAA11Presentable_pFZ">showDetail(_:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Shows a detail viewController by calling <code>showDetail</code> on the rootViewController.</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>Prefer <code>Transition.push</code> when using transitions on a <code>UINavigationController</code> rootViewController.
In contrast to this transition, you can specify an animation.</p>

</div>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">showDetail</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to be shown as a detail view controller.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV13presentOnRoot_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/presentOnRoot(_:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV13presentOnRoot_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ">presentOnRoot(_:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to present the given presentable on the rootViewController.</p>

<p>The present-transition might also be helpful as it always presents on top of what is currently
presented.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">presentOnRoot</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to be presented.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be set as the presentable&rsquo;s transitioningDelegate. Specify <code>nil</code> to not override
the current transitioningDelegate and <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the transitioningDelegate to use
the default UIKit animations.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV7present_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ"></a>
                    <a name="//apple_ref/swift/Method/present(_:animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV7present_9animationACyxGAA11Presentable_p_AA9AnimationCSgtFZ">present(_:animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to present the given presentable. It uses the rootViewController&rsquo;s presentedViewController,
if present, otherwise it is equivalent to <code>presentOnRoot</code>.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">present</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to be presented.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be set as the presentable&rsquo;s transitioningDelegate. Specify <code>nil</code> to not override
the current transitioningDelegate and <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to reset the transitioningDelegate to use
the default UIKit animations.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV5embed_2inACyxGAA11Presentable_p_AA9Container_ptFZ"></a>
                    <a name="//apple_ref/swift/Method/embed(_:in:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV5embed_2inACyxGAA11Presentable_p_AA9Container_ptFZ">embed(_:in:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to embed the given presentable in a specific container (i.e. a view or viewController).</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">embed</span><span class="p">(</span><span class="n">_</span> <span class="nv">presentable</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Presentable.html">Presentable</a></span><span class="p">,</span> <span class="k">in</span> <span class="nv">container</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Container.html">Container</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>presentable</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The presentable to be embedded.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>container</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The container to embed the presentable in.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV13dismissToRoot9animationACyxGAA9AnimationCSg_tFZ"></a>
                    <a name="//apple_ref/swift/Method/dismissToRoot(animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV13dismissToRoot9animationACyxGAA9AnimationCSg_tFZ">dismissToRoot(animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to call dismiss on the rootViewController. Also take a look at the <code>dismiss</code> transition,
which calls dismiss on the rootViewController&rsquo;s presentedViewController, if present.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">dismissToRoot</span><span class="p">(</span><span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be used by the rootViewController&rsquo;s presentedViewController.
Specify <code>nil</code> to not override its transitioningDelegate or <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to fall back to the
default UIKit animations.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV7dismiss9animationACyxGAA9AnimationCSg_tFZ"></a>
                    <a name="//apple_ref/swift/Method/dismiss(animation:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV7dismiss9animationACyxGAA9AnimationCSg_tFZ">dismiss(animation:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Transition to call dismiss on the rootViewController&rsquo;s presentedViewController, if present.
Otherwise, it is equivalent to <code>dismissToRoot</code>.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">dismiss</span><span class="p">(</span><span class="nv">animation</span><span class="p">:</span> <span class="kt"><a href="../Classes/Animation.html">Animation</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>animation</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The animation to be used by the rootViewController&rsquo;s presentedViewController.
Specify <code>nil</code> to not override its transitioningDelegate or <code><a href="../Classes/Animation.html#/s:12XCoordinator9AnimationC7defaultACvpZ">Animation.default</a></code> to fall back to the
default UIKit animations.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV4noneACyxGyFZ"></a>
                    <a name="//apple_ref/swift/Method/none()" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV4noneACyxGyFZ">none()</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>No transition at all. May be useful for testing or debugging purposes, or to ignore specific
routes.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="nf">none</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ"></a>
                    <a name="//apple_ref/swift/Method/multiple(_:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV8multipleyACyxGqd__SlRd__AE7ElementRtd__lFZ">multiple(_:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>With this transition you can chain multiple transitions of the same type together.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="n">multiple</span><span class="o">&lt;</span><span class="kt">C</span><span class="o">&gt;</span><span class="p">(</span><span class="n">_</span> <span class="nv">transitions</span><span class="p">:</span> <span class="kt">C</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span> <span class="k">where</span> <span class="kt">C</span> <span class="p">:</span> <span class="kt">Collection</span><span class="p">,</span> <span class="kt">C</span><span class="o">.</span><span class="kt">Element</span> <span class="o">==</span> <span class="kt">Transition</span><span class="o">&lt;</span><span class="kt">RootViewController</span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>transitions</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The transitions to be chained to form the new transition.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ"></a>
                    <a name="//apple_ref/swift/Method/route(_:on:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV5route_2onACyxG9RouteTypeQyd___qd__tAA11CoordinatorRd__lFZ">route(_:on:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Use this transition to trigger a route on another coordinator. TransitionOptions and
PresentationHandler used during the execution of this transitions are forwarded.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="n">route</span><span class="o">&lt;</span><span class="kt">C</span><span class="o">&gt;</span><span class="p">(</span><span class="n">_</span> <span class="nv">route</span><span class="p">:</span> <span class="kt">C</span><span class="o">.</span><span class="kt">RouteType</span><span class="p">,</span> <span class="n">on</span> <span class="nv">coordinator</span><span class="p">:</span> <span class="kt">C</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span> <span class="k">where</span> <span class="kt">C</span> <span class="p">:</span> <span class="kt"><a href="../Protocols/Coordinator.html">Coordinator</a></span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>route</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The route to be triggered on the coordinator.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>coordinator</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The coordinator to trigger the route on.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ"></a>
                    <a name="//apple_ref/swift/Method/trigger(_:on:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV7trigger_2onACyxG9RouteTypeQyd___qd__tAA6RouterRd__lFZ">trigger(_:on:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Use this transition to trigger a route on another router. TransitionOptions and
PresentationHandler used during the execution of this transitions are forwarded.</p>

<p>Peeking is not supported with this transition. If needed, use the <code>route</code> transition instead.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="n">trigger</span><span class="o">&lt;</span><span class="kt">R</span><span class="o">&gt;</span><span class="p">(</span><span class="n">_</span> <span class="nv">route</span><span class="p">:</span> <span class="kt">R</span><span class="o">.</span><span class="kt">RouteType</span><span class="p">,</span> <span class="n">on</span> <span class="nv">router</span><span class="p">:</span> <span class="kt">R</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span> <span class="k">where</span> <span class="kt">R</span> <span class="p">:</span> <span class="kt"><a href="../Protocols/Router.html">Router</a></span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>route</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The route to be triggered on the coordinator.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>router</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The router to trigger the route on.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ"></a>
                    <a name="//apple_ref/swift/Method/perform(_:on:)" class="dashAnchor"></a>
                    <a class="token" href="#/s:12XCoordinator10TransitionV7perform_2onACyxGqd___18RootViewControllerQyd__tAA0B8ProtocolRd__lFZ">perform(_:on:)</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Performs a transition on a different viewController than the coordinator&rsquo;s rootViewController.</p>

<p>This might be helpful when creating a coordinator for a specific viewController would create unnecessary complicated code.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">static</span> <span class="kd">func</span> <span class="n">perform</span><span class="o">&lt;</span><span class="kt">TransitionType</span><span class="p">:</span> <span class="kt"><a href="../Protocols/TransitionProtocol.html">TransitionProtocol</a></span><span class="o">&gt;</span><span class="p">(</span><span class="n">_</span> <span class="nv">transition</span><span class="p">:</span> <span class="kt">TransitionType</span><span class="p">,</span>
                                                               <span class="n">on</span> <span class="nv">viewController</span><span class="p">:</span> <span class="kt">TransitionType</span><span class="o">.</span><span class="kt">RootViewController</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kt">Transition</span></code></pre>

                        </div>
                      </div>
                      <div>
                        <h4>Parameters</h4>
                        <table class="graybox">
                          <tbody>
                            <tr>
                              <td>
                                <code>
                                <em>transition</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The transition to be performed.</p>
                                </div>
                              </td>
                            </tr>
                            <tr>
                              <td>
                                <code>
                                <em>viewController</em>
                                </code>
                              </td>
                              <td>
                                <div>
                                  <p>The viewController to perform the transition on.</p>
                                </div>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </div>
        </section>

      </article>
    </div>
    <section class="footer">
      <p>&copy; 2019 <a class="link" href="https://quickbirdstudios.com" target="_blank" rel="external">Stefan Kofler &amp; Paul Kraft</a>. All rights reserved. (Last updated: 2019-09-18)</p>
      <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.11.0</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
    </section>
  </body>
</div>
</html>
